/**
 * 获取年份
 */
export const getYear = () => {
	return new Date().getFullYear()
}

/**
 * 获取当前月份
 * @param {Boolean} fillFlag 布尔值,是否补 0,默认为 true
 */
export const getMonth = (fillFlag = true) => {
	let mon = new Date().getMonth() + 1
	if (fillFlag) {
		mon = mon < 10 ? `0${mon}` : mon
	}
	return mon
}

/**
 * 获取日
 * @param {Boolean} fillFlag 布尔值,是否补 0
 */
export const getDay = (fillFlag = true) => {
	let day = new Date().getDate()
	if (fillFlag) {
		day = day < 10 ? `0${day}` : day
	}
	return day
}

/**
 * 获取星期几
 */
export const getWhatDay = () => {
	return new Date().getDay() ? new Date().getDay() : 7
}

/**
 * 获取当前月天数
 * @param {String} year 年份
 * @param {String} month 月份
 */
export const getMonthNum = (year, month) => {
	var d = new Date(year, month, 0)
	return d.getDate()
}

/**
 * 获取当前时间 yyyy-mm-dd hh:mm:ss
 */
export function getYyMmDdHhMmSs() {
	const date = new Date()
	const year = date.getFullYear()
	const month = date.getMonth() + 1
	const day = date.getDate()
	const hours = date.getHours()
	const minu = date.getMinutes()
	const second = date.getSeconds()
	const arr = [month, day, hours, minu, second]
	arr.forEach(item => {
		return item < 10 ? '0' + item : item
	})
	return (
		year +
		'-' +
		arr[0] +
		'-' +
		arr[1] +
		' ' +
		arr[2] +
		':' +
		arr[3] +
		':' +
		arr[4]
	)
}

/** 时间格式化 **/
export const formatDate = (date, fmt) => {
	let _date = new Date(date)
	if (/(y+)/.test(fmt)) {
		fmt = fmt.replace(RegExp.$1, (_date.getFullYear() + '').substr(4 - RegExp.$1.length))
	}
	let o = {
		'M+': _date.getMonth() + 1,
		'd+': _date.getDate(),
		'H+': _date.getHours(),
		'm+': _date.getMinutes(),
		's+': _date.getSeconds()
	}
	for (let k in o) {
		if (new RegExp(`(${k})`).test(fmt)) {
			let str = o[k] + ''
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str))
		}
	}
	return fmt
}

function padLeftZero(str) {
	return ('00' + str).substr(str.length)
}

/**
 * 将年月日转化成时间戳
 * @param {String} time yyyy/mm/dd 或yyyy-mm-dd 或yyyy-mm-dd hh:mm 或yyyy-mm-dd hh:mm:ss
 */
export const YyMmDdToTimes = (time) => {
	return new Date(time.replace(/-/g, '/')).getTime()
}

/**
 *  比较时间 1 小于时间 2
 * @param {String} timeOne  时间 1
 * @param {String} timeTwo  时间 2
 */
export const compareTimeOneLessTwo = (timeOne, timeTwo) => {
	// 判断 timeOne 和 timeTwo 是否
	return new Date(timeOne.replace(/-/g, '/')).getTime() < new Date(timeTwo.replace(/-/g, '/')).getTime()
}
